Notes and Setup
This is an initial attemmt at compiling the data. Future work includes: 1. Developing more rigorous QAQC procedures 2. Implimenting said procedures 3. Increasing the spead of the database upload…[right now it took over 7.5 hours!]
Water Level QAQC
DB Upland Well 1
This is preliminary data and will undergo more rigurous QAQC at a later date.
DB Wetland Well Shallow
This is preliminary data and will undergo more rigurous QAQC at a later date.
TA Wetland Well Shallow
This is preliminary data and will undergo more rigurous QAQC at a later date.
TB Upland Well 2
This is preliminary data and will undergo more rigurous QAQC at a later date.
TB Upland Well 1
This is preliminary data and will undergo more rigurous QAQC at a later date.
TB Wetland Well Shallow
This is preliminary data and will undergo more rigurous QAQC at a later date.
Tiger Paw Catchment Outlet
This is preliminary data and will undergo more rigurous QAQC at a later date.
FN Wetland Well Shallow
This is preliminary data and will undergo more rigurous QAQC at a later date.
BB Wetland Well Shallow
This is preliminary data and will undergo more rigurous QAQC at a later date.
BB Upland Well 1
This is preliminary data and will undergo more rigurous QAQC at a later date.
P-26 Deep Well
This is preliminary data and will undergo more rigurous QAQC at a later date.
ND Upland Well 1
This is preliminary data and will undergo more rigurous QAQC at a later date.
ND Upland Well 2
This is preliminary data and will undergo more rigurous QAQC at a later date.
ND Wetland Well Shallow
This is preliminary data and will undergo more rigurous QAQC at a later date.
DK Upland Well 1
This is preliminary data and will undergo more rigurous QAQC at a later date.
DK Upland Well 2
This is preliminary data and will undergo more rigurous QAQC at a later date.
DK Wetland Well Shallow
This is preliminary data and will undergo more rigurous QAQC at a later date.
LS0tCnRpdGxlOiAiRGVjZW1iZXIgMjAsIDIwMTcgRGF0YSBEb3dubG9hZCAmIFByb2Nlc3NpbmciCm91dHB1dDoKICBodG1sX2RvY3VtZW50OgogICAgZGZfcHJpbnQ6IHBhZ2VkCiAgICB0b2M6IHllcwogICAgdG9jX2Zsb2F0OiB5ZXMKICBodG1sX25vdGVib29rOgogICAgdG9jOiB5ZXMKICAgIHRvY19mbG9hdDogeWVzCi0tLQoKI05vdGVzIGFuZCBTZXR1cAoKVGhpcyBpcyBhbiBpbml0aWFsIGF0dGVtbXQgYXQgY29tcGlsaW5nIHRoZSBkYXRhLiAgRnV0dXJlIHdvcmsgaW5jbHVkZXM6CjEuICBEZXZlbG9waW5nIG1vcmUgcmlnb3JvdXMgUUFRQyBwcm9jZWR1cmVzCjIuICBJbXBsaW1lbnRpbmcgc2FpZCBwcm9jZWR1cmVzCjMuICBJbmNyZWFzaW5nIHRoZSBzcGVhZCBvZiB0aGUgZGF0YWJhc2UgdXBsb2FkLi4uW3JpZ2h0IG5vdyBpdCB0b29rIG92ZXIgNy41IGhvdXJzIV0KCgpgYGB7ciBzZXR1cCwgZWNobz1GQUxTRSwgcmVzdWx0cz0iaGlkZSIsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9CiNDbGVhciBNZW1vcnkKcm0obGlzdD1scyhhbGw9VFJVRSkpCgojTG9hZCBSZXF1aXJlZCBQYWNrYWdlcwpsaWJyYXJ5KGRwbHlyKSAgIApsaWJyYXJ5KGRldnRvb2xzKQpsaWJyYXJ5KFJTUUxpdGUpCmxpYnJhcnkoREJJKQpsaWJyYXJ5KHh0cykKbGlicmFyeShkeWdyYXBocykKbGlicmFyeShSUG9zdGdyZVNRTCkKCiNMb2FkIFBhbG1lciBMYWIgdG9vbHMKc291cmNlKCJ+L3ByZXNzdXJlX3RyYW5zZHVjZXJzL2RiX2dldF93YXRlcl9sZXZlbF90cy5SIikKZGV2dG9vbHM6Omluc3RhbGxfZ2l0aHViKHJlcG89InJvZG0yIix1c2VybmFtZT0ia2hvbmR1bGEiLCBxdWlldCA9IEYpCmxpYnJhcnkocm9kbTIpCgojRGVmaW5lIHdvcmtpbmcgZGlyZWN0b3J5IGFuZCBkYXRhYmFzZSBsb2NhdGlvbgp3b3JraW5nX2RpcjwtIi8vbmZzL3BhbG1lci1ncm91cC1kYXRhL0Nob3B0YW5rL05hdGUvUFRfRGF0YS8yMDE3MTIyMF9Eb3dubG9hZHMvIgoKI0Rvd25sb2FkIERhdGEKbWFzdGVyPC1yZWFkLmNzdihwYXN0ZTAod29ya2luZ19kaXIsIndlbGxfbG9nLmNzdiIpKQoKI0NyZWF0ZSB0ZW1wIGZpbGUKZGlyLmNyZWF0ZShwYXN0ZTAod29ya2luZ19kaXIsImludGVybWVkaWF0ZSIpKQoKI0Nvbm5lY3QgdG8gZGF0YWJhc2UKZGIgPC0gZGJDb25uZWN0KFBvc3RncmVTUUwoKSwgCiAgICAgICAgICAgICAgICBob3N0ICAgICA9ICJzZXN5bmMtcG9zdGdpczAxLnJlc2VhcmNoLnNlc3luYy5vcmciLAogICAgICAgICAgICAgICAgZGJuYW1lICAgPSAiY2hvcHRhbmsiLAogICAgICAgICAgICAgICAgdXNlciAgICAgPSAicGFsbWVyZ3JvdXAiLCAKICAgICAgICAgICAgICAgIHBhc3N3b3JkID0gcmVhZGxpbmUocHJvbXB0PSJFbnRlciBwYXNzd29yZDogIikpCmBgYAoKYGBge3IgaW5pdGlhbC1jaGVja3MsIGVjaG89RkFMU0UsIHJlc3VsdHM9ImhpZGUifQojQ2hlY2sgdG8gbWFrZSBzdXJlIHNpdGUgbmFtZXMgYXJlIGluIERCLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KYTwtYXMubWF0cml4KG1hc3RlclssIlNpdGVfTmFtZSJdLCBuY29sPTEpCmI8LWdldF9zaXRlX25hbWVzX2xpa2UoIiAiLGRiKSNhcy5tYXRyaXgoZGJHZXRRdWVyeShkYiwiU0VMRUNUIFNhbXBsaW5nRmVhdHVyZUNvZGUgRlJPTSBTYW1wbGluZ0ZlYXR1cmVzIikpCmlmKGxlbmd0aChhWyEoYSAlaW4lIGIpXSkhPTApewogIHdhcm5pbmcocGFzdGUwKCJTaXRlIE5hbWVzIGluIFdlbGwgTG9nIGFuZCBEYXRhYmFzZSBkbyBub3QgbWF0Y2ghISIpKQogIHByaW50KGFbIShhICVpbiUgYildKQp9ZWxzZXsKICAiU2l0ZSBOYW1lcyBNYXRjaCEiCn0KCiNDaGVjayB0byBtYWtlIHN1cmUgU29uZGUgSUQgaW4gd2VsbCBsb2cgYW5kIFNlcmlhbCBOdW1iZXIgaW4gZmlsZXMgbWF0Y2gtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpmdW48LWZ1bmN0aW9uKG4pewogICNSZWFkIGRhdGEKICB0ZW1wPC1yZWFkLmNzdihwYXN0ZTAod29ya2luZ19kaXIsImV4cG9ydC8iLCBsb2dzW25dKSwgc2tpcD0xKQogIAogICNleHRyYWN0IHNlcmlhbCBudW1iZXIKICBzZXJpYWxfbnVtYmVyPC1jb2xuYW1lcyh0ZW1wKVtncmVwKCJMR1IiLGNvbG5hbWVzKHRlbXApKV1bMV0gICNGaW5kIGNvbGx1bW4gbmFtZSB3aXRoIHNlcmlhbCBudW1iZXIKICBzZXJpYWxfbnVtYmVyPC1zdWJzdHIoc2VyaWFsX251bWJlciwgICAjaXNvbGF0ZSBzZXJpYWwgbnVtYmVyCiAgICAgICAgICAgICAgICAgICAgICAgIGdyZWdleHByKCJTRU4uUy5OIixzZXJpYWxfbnVtYmVyKVtbMV1dWzFdKzksICNTdGFydAogICAgICAgICAgICAgICAgICAgICAgICBuY2hhcihzZXJpYWxfbnVtYmVyKS0xKSAjc3RvcAogIHNlcmlhbF9udW1iZXI8LWFzLm51bWVyaWMoc2VyaWFsX251bWJlcikgCiAgCiAgI2V4cG9ydCBzZXJpYWwgbnVtYmVyCiAgc2VyaWFsX251bWJlcgp9CiNDcmVhdGUgbGlzdCBvZiBmaWxlcyAKbG9nczwtbGlzdC5maWxlcyhwYXN0ZTAod29ya2luZ19kaXIsImV4cG9ydCIpKQpsb2dzPC1sb2dzW2xvZ3MhPSJiYXJvLmNzdiJdCmE8LXNhcHBseShzZXEoMSxsZW5ndGgobG9ncykpLCBmdW4pICAKYjwtbWFzdGVyJFNvbmRlX0lEICAKaWYobGVuZ3RoKGFbIShhICVpbiUgYildKSE9MCl7CiAgd2FybmluZyhwYXN0ZTAoIlNvbmRlIHNlcmlhbCBudW1iZXIgaW4gV2VsbCBMb2cgYW5kIGRhdGEgZmlsZXMgZG8gbm90IG1hdGNoISEiKSkKICBwcmludChhWyEoYSAlaW4lIGIpXSkKfWVsc2V7CiAgIlNlcmlhbCBOdW1iZXJzIE1hdGNoIgp9CgojQ2hlY2sgdW5pdHMgaW4gZmlsZXMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0NyZWF0ZSBmdW5jdG9pbiB0byBjaGVjayB1bml0cyBpbiBmaWxlCmZ1bjwtZnVuY3Rpb24obil7CiAgI0Rvbndsb2FkIGRhdGEKICB0ZW1wPC1yZWFkLmNzdihwYXN0ZTAod29ya2luZ19kaXIsImV4cG9ydC8iLCBsb2dzW25dKSwgc2tpcD0xKQogIAogICNDaGVjayBwcmVzc3VyZSB1bml0cwogIHByZXNzX3VuaXRzPC1jb2xuYW1lcyh0ZW1wKVtncmVwKCJrUGEiLGNvbG5hbWVzKHRlbXApKV1bMV0gCiAgcHJlc3NfdW5pdHM8LXN1YnN0cihwcmVzc191bml0cywgICAjaXNvbGF0ZSB0ZW1wZXJhdHVyZSB1bml0cwogICAgICAgICAgICAgICAgICAgICBncmVnZXhwcigiQWJzLlByZXMiLCBwcmVzc191bml0cylbWzFdXVsxXSsxMCwgI1N0YXJ0CiAgICAgICAgICAgICAgICAgICAgIGdyZWdleHByKCJBYnMuUHJlcyIsIHByZXNzX3VuaXRzKVtbMV1dWzFdKzEyKSAjc3RvcAoKICAjQ2hlY2sgdGVtcCB1bml0cwogIHRlbXBfdW5pdHM8LWNvbG5hbWVzKHRlbXApW2dyZXAoIlRlbXAiLGNvbG5hbWVzKHRlbXApKV1bMV0gCiAgdGVtcF91bml0czwtc3Vic3RyKHRlbXBfdW5pdHMsICAgI2lzb2xhdGUgdGVtcGVyYXR1cmUgdW5pdHMKICAgICAgICAgICAgICAgICAgICAgZ3JlZ2V4cHIoIlRlbXAiLCB0ZW1wX3VuaXRzKVtbMV1dWzFdKzcsICNTdGFydAogICAgICAgICAgICAgICAgICAgICBncmVnZXhwcigiVGVtcCIsIHRlbXBfdW5pdHMpW1sxXV1bMV0rNykgI3N0b3AKICAKICAjUHJpbnQgdW5pdHMKICBkYXRhLmZyYW1lKGZpbGVuYW1lPWxvZ3Nbbl0sIAogICAgICAgICAgICAgcHJlc3N1cmU9cHJlc3NfdW5pdHMsIAogICAgICAgICAgICAgdGVtcGVyYXR1cmU9dGVtcF91bml0cykKfQp4PC1sYXBwbHkoc2VxKDEsIGxlbmd0aChsb2dzKSksIGZ1bikKeDwtZGF0YS5mcmFtZShkby5jYWxsKHJiaW5kLHgpKQpwcmludCh4KQpgYGAKCmBgYHtyIHB0LWRhdGEtd3JhbmdsaW5nLCBlY2hvPUZBTFNFLCByZXN1bHRzPSJoaWRlIn0KI2NyZWF0ZSBmdW5jdGlvbiB0byBkb3dubG9hZCBsb2dzLCBjbGVhbiwgYW5kIHJld3JpdGUgaW4gdGVtcCBmb2xkZXIKZnVuPC1mdW5jdGlvbihuKXsKICAjU2V0dXB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgI1JlYWQgZGF0YQogIGRmPC1yZWFkLmNzdihwYXN0ZTAod29ya2luZ19kaXIsImV4cG9ydC8iLCBsb2dzW25dKSwgc2tpcD0xKQogIAogICNEZWZpbmUgc2VyaWFsIG51bWJlcgogIHNlcmlhbF9udW1iZXI8LWNvbG5hbWVzKGRmKVtncmVwKCJMR1IiLGNvbG5hbWVzKGRmKSldWzFdICAjRmluZCBjb2xsdW1uIG5hbWUgd2l0aCBzZXJpYWwgbnVtYmVyCiAgc2VyaWFsX251bWJlcjwtc3Vic3RyKHNlcmlhbF9udW1iZXIsICAgI2lzb2xhdGUgc2VyaWFsIG51bWJlcgogICAgICAgICAgICAgICAgICAgICAgICBncmVnZXhwcigiU0VOLlMuTiIsc2VyaWFsX251bWJlcilbWzFdXVsxXSs5LCAjU3RhcnQKICAgICAgICAgICAgICAgICAgICAgICAgbmNoYXIoc2VyaWFsX251bWJlciktMSkgI3N0b3AKICBzZXJpYWxfbnVtYmVyPC1hcy5udW1lcmljKHNlcmlhbF9udW1iZXIpIAogIAogICNEZXRlcm1pbmUgdGltZXpvbmUgb2Zmc2V0IGluIHNlY29uZHMKICB0aW1lX29mZnNldDwtY29sbmFtZXMoZGYpW2dyZXAoIkdNVCIsY29sbmFtZXMoZGYpKV0gICNHcmFiIGNvbGx1bW4gbmFtZSB3LyB0aW1lIG9mZnNldAogIHRpbWVfb2Zmc2V0PC1hcy5udW1lcmljKHN1YnN0cih0aW1lX29mZnNldCwgMTYsMTgpKSozNjAwK2FzLm51bWVyaWMoc3Vic3RyKHRpbWVfb2Zmc2V0LCAxOSwyMCkpKjYwCiAgCiAgI0RlZmluZSB2YXJpYWJsZXMgZnJvbSB3ZWxsIGxvZwogIHNpdGVfbmFtZTwtbWFzdGVyJFNpdGVfTmFtZVttYXN0ZXIkU29uZGVfSUQ9PXNlcmlhbF9udW1iZXJdCiAgZGVwbG95bWVudDwtc3RycHRpbWUocGFzdGUobWFzdGVyJERhdGVbbWFzdGVyJFNvbmRlX0lEPT1zZXJpYWxfbnVtYmVyXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXN0ZXIkVGltZVttYXN0ZXIkU29uZGVfSUQ9PXNlcmlhbF9udW1iZXJdKSwgCiAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0PSIlbS8lZC8lWSAlSDolTSIsIHR6PSJHTVQiKQogIGRlcGxveW1lbnQ8LWRlcGxveW1lbnQtdGltZV9vZmZzZXQKICByZWxhdGl2ZV93bDwtbWFzdGVyJFJlbGF0aXZlX1dhdGVyX0xldmVsX21bbWFzdGVyJFNvbmRlX0lEPT1zZXJpYWxfbnVtYmVyXQogIGJhcm9fZmlsZTwtbWFzdGVyJGJhcm9fZmlsZVttYXN0ZXIkU29uZGVfSUQ9PXNlcmlhbF9udW1iZXJdCiAgCiAgI3dhdGVyIGxldmVsIHRpbWUgc2VyZWlzfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgI3N1YnNldCBkYXRhZnJhbWUgdG8gdGVtcCwgYWJzX3ByZXMsIGFuZCB0ZW1wCiAgZGY8LWRmWyxjKDIsMyw0KV0KICBjb2xuYW1lcyhkZik8LWMoIlRpbWVzdGFtcCIsICJwcmVzc3VyZUFic29sdXRlIiwgInRlbXBfYyIpCiAgCiAgI2Zvcm1hdCBkYXRlX3RpbWUKICBkZiRUaW1lc3RhbXA8LXN0cnB0aW1lKGRmJFRpbWVzdGFtcCwgIiVtLyVkLyV5ICVJOiVNOiVTICVwIiktdGltZV9vZmZzZXQKICBkZiRUaW1lc3RhbXA8LWFzLlBPU0lYY3QoZGYkVGltZXN0YW1wKQogIAogICNiYXJvIGZpbGUgdGltZSBzZXJpZXN+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KICAjU3Vic2V0IGRhdGFmcmFtZSB0byB0ZW1wLCBhYnNfcHJlcywgYW5kIHRlbXAKICBiYXJvPC1yZWFkLmNzdihwYXN0ZTAod29ya2luZ19kaXIsImV4cG9ydC8iLCBiYXJvX2ZpbGUpLCBza2lwPTEpCiAgYmFybzwtYmFyb1ssYygyLDMsNCldCiAgY29sbmFtZXMoYmFybyk8LWMoIlRpbWVzdGFtcCIsICJiYXJvbWV0cmljUHJlc3N1cmUiLCAidGVtcF9jIikKICAKICAjZm9ybWF0IGRhdGUgYW5kIHRpbWUKICBiYXJvJFRpbWVzdGFtcDwtc3RycHRpbWUoYmFybyRUaW1lc3RhbXAsICIlbS8lZC8leSAlSTolTTolUyAlcCIpLXRpbWVfb2Zmc2V0CiAgYmFybyRUaW1lc3RhbXA8LWFzLlBPU0lYY3QoYmFybyRUaW1lc3RhbXApCiAgCiAgI0NhY2x1Y3VsYXRlIHdhdGVybGV2ZWx+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgI2NyZWF0ZSBiYXJvIGludGVycG9sYXRpb24gZnVuY3Rpb24KICBiYXJvX2Z1bjwtYXBwcm94ZnVuKGJhcm8kVGltZXN0YW1wLCBiYXJvJGJhcm9tZXRyaWNQcmVzc3VyZSkKICAKICAjY2FsY3VsYXRlIGJhcm8gZm9yIGVhY2ggZGYgdGltZSBzdGVwCiAgZGYkYmFyb21ldHJpY1ByZXNzdXJlPC1iYXJvX2Z1bihkZiRUaW1lc3RhbXApCiAgCiAgI0NhY2x1YXRlIGdhZ2UgcHJlc3N1cmUKICBkZiRwcmVzc3VyZUdhdWdlPC1kZiRwcmVzc3VyZUFic29sdXRlLWRmJGJhcm9tZXRyaWNQcmVzc3VyZQogIAogICNDYWxjdWxhdGUgcmVsYXRpdmUgd2F0ZXIgbGV2ZWwKICBkZiRnYWdlSGVpZ2h0PC1kZiRwcmVzc3VyZUdhdWdlLzkuODEKICAKICAjV2F0ZXIgTGV2ZWwKICBkZiR3YXRlckxldmVsPC1kZiRnYWdlSGVpZ2h0K2FzLm51bWVyaWMocGFzdGUocmVsYXRpdmVfd2wpKQogIAogICNQcnVuZSB3YXRlciBsZXZlbCBiYXNlZCBvbiBkZXBsb3ltZW50IHRpbWUKICBkZjwtZGZbZGYkVGltZXN0YW1wPGRlcGxveW1lbnQsXQogIGRmPC1uYS5vbWl0KGRmKQogIAogICNhZGQgIm9mZnNldCBjb2xsdW1uIgogIGRmJG9mZnNldDwtMAogIAogICNkZWxldGUgcG90ZW50aWFsIGR1cGxpY2F0ZXMKICBkZjwtZGZbIWR1cGxpY2F0ZWQoZGYpLF0KICAKICAjV3JpdGUgZGYgdG8gdGVtcCBmaWxlCiAgd3JpdGUuY3N2KGRmLCBwYXN0ZTAod29ya2luZ19kaXIsImludGVybWVkaWF0ZS8iLCBzZXJpYWxfbnVtYmVyLCIuY3N2IikpCn0KCiNDcmVhdGUgbGlzdCBvZiBQVCBmaWxlcwpsb2dzPC1saXN0LmZpbGVzKHBhc3RlMCh3b3JraW5nX2RpciwiZXhwb3J0IikpCmxvZ3M8LWxvZ3NbbG9ncyE9ImJhcm8uY3N2Il0KCiNjcmVhdGUgdGVtcCBmaWxlIHRvIHN0b3JlIGludGVybWVkaWF0ZSBmaWxlcwpkaXIuY3JlYXRlKHBhc3RlMCh3b3JraW5nX2RpciwiaW50ZXJtZWRpYXRlIikpCgojUnVuIGZ1bmN0aW9uIApsYXBwbHkoc2VxKDEsIGxlbmd0aChsb2dzKSksIGZ1bikKYGBgCgojV2F0ZXIgTGV2ZWwgUUFRQwpgYGB7ciB0c19wbG90IGZ1bmN0aW9uLCBlY2hvPUZBTFNFLCByZXN1bHRzPSJoaWRlIn0KZnVuPC1mdW5jdGlvbihuKXsKICAjUmVhZCBkZgogIGRmPC1yZWFkLmNzdihwYXN0ZTAod29ya2luZ19kaXIsICJpbnRlcm1lZGlhdGUvIixtYXN0ZXIkU29uZGVfSURbbl0sIi5jc3YiKSkKICBkZiRUaW1lc3RhbXA8LWFzLlBPU0lYY3QoZGYkVGltZXN0YW1wKQogIGRmJHdhdGVyTGV2ZWw8LWRmJHdhdGVyTGV2ZWwqMTAwKzEwMDAgCiAgCiAgI3B1bGwgd2F0ZXIgbGV2ZWwgZnJvbSBkYXRhYmFzZQogIGRmX2hpc3RvcmljPC1OVUxMI2RiX2dldF93YXRlcl9sZXZlbF90cyhkYixwYXN0ZShtYXN0ZXIkU2l0ZV9OYW1lW25dKSkKICAKICAjRm9ybWF0IGRmCiAgaWYobGVuZ3RoKGRmX2hpc3RvcmljKT09MCl7CiAgICBkZiA8LSBkZiAlPiUgc2VsZWN0KFRpbWVzdGFtcCwgd2F0ZXJMZXZlbCkKICAgIGRmX3h0czwteHRzKGRmLCBvcmRlci5ieT1kZiRUaW1lc3RhbXApCiAgICBkZl94dHM8LWRmX3h0c1ssLTFdCiAgfWVsc2V7CiAgICAjYWRkIGRhdHVtIGNvcnJlY3Rpb24gdG8gZGZfaGlzdG9yaWMKICAgIGRmIDwtIGRmICU+JSBzZWxlY3QoVGltZXN0YW1wLCB3YXRlckxldmVsKQogICAgZGZfaGlzdG9yaWMkd2F0ZXJMZXZlbDwtZGZfaGlzdG9yaWMkd2F0ZXJMZXZlbCoxMDArMTAwMCAgCiAgICBkZl9oaXN0b3JpYzwtZGZfaGlzdG9yaWNbLGMoIlRpbWVzdGFtcCIsIndhdGVyTGV2ZWwiKV0KICAgIGRmX2hpc3RvcmljJGdyb3VwPC0ib2xkIgogICAgZGYkZ3JvdXA8LSJuZXciCiAgICBkZjwtcmJpbmQoZGZfaGlzdG9yaWMsIGRmKQogICAgZGZfc3ByZWFkIDwtIGRmICU+JSAKICAgICAgIGRwbHlyOjpzZWxlY3QoVGltZXN0YW1wLCBncm91cCwgd2F0ZXJMZXZlbCkgJT4lCiAgICAgICB0aWR5cjo6c3ByZWFkKGtleSA9IGdyb3VwLCB2YWx1ZSA9IHdhdGVyTGV2ZWwpCiAgICBkZl94dHM8LXh0cyhkZl9zcHJlYWQsIG9yZGVyLmJ5PWRmX3NwcmVhZCRUaW1lc3RhbXApCiAgICBkZl94dHM8LWRmX3h0c1ssLTFdCiAgICB9CiAgCiAgI1Bsb3QKICB0c19wbG90PC1keWdyYXBoKGRmX3h0cywgbWFpbj1tYXN0ZXIkU2l0ZV9OYW1lW25dKSAlPiUKICAgICAgICAgICAgICBkeVJhbmdlU2VsZWN0b3IoKSAlPiUKICAgICAgICAgICAgICBkeUxlZ2VuZCgpICU+JQogICAgICAgICAgICAgIGR5T3B0aW9ucyhzdHJva2VXaWR0aCA9IDEuNSkgJT4lCiAgICAgICAgICAgICAgZHlPcHRpb25zKGxhYmVsc1VUQyA9IFRSVUUpICU+JQogICAgICAgICAgICAgIGR5SGlnaGxpZ2h0KGhpZ2hsaWdodENpcmNsZVNpemUgPSA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWdobGlnaHRTZXJpZXNCYWNrZ3JvdW5kQWxwaGEgPSAwLjIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGVPbk1vdXNlT3V0ID0gRkFMU0UpICU+JQogICAgICAgICAgICAgIGR5QXhpcygieSIsIGxhYmVsID0gIldhdGVyIExldmVsIFtjbV0iKQogIAogICNFeHBvcnQgUGxvdAogIHJldHVybih0c19wbG90KQp9CmBgYAoKIyNEQiBVcGxhbmQgV2VsbCAxIApUaGlzIGlzIHByZWxpbWluYXJ5IGRhdGEgYW5kIHdpbGwgdW5kZXJnbyBtb3JlIHJpZ3Vyb3VzIFFBUUMgYXQgYSBsYXRlciBkYXRlLiAKYGBge3IsIGVjaG89RkFMU0V9CiNsb2cgbnVtYmVyCm49MQoKI1JlYWQgZGYKZGY8LXJlYWQuY3N2KHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQpkZiRUaW1lc3RhbXA8LWFzLlBPU0lYY3QoZGYkVGltZXN0YW1wKQoKI0VkaXRzCiNkZjwtZGZbIShkZiRUaW1lc3RhbXA+YXMuUE9TSVhjdCgiMjAxNy0wOS0yNyAwNDowMCBVVEMiKSAmIGRmJFRpbWVzdGFtcDxhcy5QT1NJWGN0KCIyMDE3LTA5LTI3IDExOjAwIFVUQyIpKSxdCgojZXhwb3J0IHVwZGF0ZWQgY3N2CiN3cml0ZS5jc3YoZGYsIHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQoKI0NyZWF0ZSBQbG90CmZ1bihuKQpgYGAKCgojI0RCIFdldGxhbmQgV2VsbCBTaGFsbG93ClRoaXMgaXMgcHJlbGltaW5hcnkgZGF0YSBhbmQgd2lsbCB1bmRlcmdvIG1vcmUgcmlndXJvdXMgUUFRQyBhdCBhIGxhdGVyIGRhdGUuIApgYGB7ciwgZWNobz1GQUxTRX0KI2xvZyBudW1iZXIKbj0yCgojUmVhZCBkZgpkZjwtcmVhZC5jc3YocGFzdGUwKHdvcmtpbmdfZGlyLCAiaW50ZXJtZWRpYXRlLyIsbWFzdGVyJFNvbmRlX0lEW25dLCIuY3N2IikpCmRmJFRpbWVzdGFtcDwtYXMuUE9TSVhjdChkZiRUaW1lc3RhbXApCgojRWRpdHMKI2RmPC1kZlshKGRmJFRpbWVzdGFtcD5hcy5QT1NJWGN0KCIyMDE3LTA5LTI3IDA0OjAwIFVUQyIpICYgZGYkVGltZXN0YW1wPGFzLlBPU0lYY3QoIjIwMTctMDktMjcgMTE6MDAgVVRDIikpLF0KCiNleHBvcnQgdXBkYXRlZCBjc3YKI3dyaXRlLmNzdihkZiwgcGFzdGUwKHdvcmtpbmdfZGlyLCAiaW50ZXJtZWRpYXRlLyIsbWFzdGVyJFNvbmRlX0lEW25dLCIuY3N2IikpCgojQ3JlYXRlIFBsb3QKZnVuKG4pCmBgYAoKIyNUQSBXZXRsYW5kIFdlbGwgU2hhbGxvdwpUaGlzIGlzIHByZWxpbWluYXJ5IGRhdGEgYW5kIHdpbGwgdW5kZXJnbyBtb3JlIHJpZ3Vyb3VzIFFBUUMgYXQgYSBsYXRlciBkYXRlLiAKYGBge3IsIGVjaG89RkFMU0V9CiNsb2cgbnVtYmVyCm49MwoKI1JlYWQgZGYKZGY8LXJlYWQuY3N2KHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQpkZiRUaW1lc3RhbXA8LWFzLlBPU0lYY3QoZGYkVGltZXN0YW1wKQoKI0VkaXRzCiNkZjwtZGZbIShkZiRUaW1lc3RhbXA+YXMuUE9TSVhjdCgiMjAxNy0wOS0yNyAwNDowMCBVVEMiKSAmIGRmJFRpbWVzdGFtcDxhcy5QT1NJWGN0KCIyMDE3LTA5LTI3IDExOjAwIFVUQyIpKSxdCgojZXhwb3J0IHVwZGF0ZWQgY3N2CiN3cml0ZS5jc3YoZGYsIHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQoKI0NyZWF0ZSBQbG90CmZ1bihuKQpgYGAKCiMjVEIgVXBsYW5kIFdlbGwgMgpUaGlzIGlzIHByZWxpbWluYXJ5IGRhdGEgYW5kIHdpbGwgdW5kZXJnbyBtb3JlIHJpZ3Vyb3VzIFFBUUMgYXQgYSBsYXRlciBkYXRlLiAKYGBge3IsIGVjaG89RkFMU0V9CiNsb2cgbnVtYmVyCm49NAoKI1JlYWQgZGYKZGY8LXJlYWQuY3N2KHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQpkZiRUaW1lc3RhbXA8LWFzLlBPU0lYY3QoZGYkVGltZXN0YW1wKQoKI0VkaXRzCiNkZjwtZGZbIShkZiRUaW1lc3RhbXA+YXMuUE9TSVhjdCgiMjAxNy0wOS0yNyAwNDowMCBVVEMiKSAmIGRmJFRpbWVzdGFtcDxhcy5QT1NJWGN0KCIyMDE3LTA5LTI3IDExOjAwIFVUQyIpKSxdCgojZXhwb3J0IHVwZGF0ZWQgY3N2CiN3cml0ZS5jc3YoZGYsIHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQoKI0NyZWF0ZSBQbG90CmZ1bihuKQpgYGAKCiMjVEIgVXBsYW5kIFdlbGwgMQpUaGlzIGlzIHByZWxpbWluYXJ5IGRhdGEgYW5kIHdpbGwgdW5kZXJnbyBtb3JlIHJpZ3Vyb3VzIFFBUUMgYXQgYSBsYXRlciBkYXRlLiAKYGBge3IsIGVjaG89RkFMU0V9CiNsb2cgbnVtYmVyCm49NQoKI1JlYWQgZGYKZGY8LXJlYWQuY3N2KHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQpkZiRUaW1lc3RhbXA8LWFzLlBPU0lYY3QoZGYkVGltZXN0YW1wKQoKI0VkaXRzCiNkZjwtZGZbIShkZiRUaW1lc3RhbXA+YXMuUE9TSVhjdCgiMjAxNy0wOS0yNyAwNDowMCBVVEMiKSAmIGRmJFRpbWVzdGFtcDxhcy5QT1NJWGN0KCIyMDE3LTA5LTI3IDExOjAwIFVUQyIpKSxdCgojZXhwb3J0IHVwZGF0ZWQgY3N2CiN3cml0ZS5jc3YoZGYsIHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQoKI0NyZWF0ZSBQbG90CmZ1bihuKQpgYGAKCiMjVEIgV2V0bGFuZCBXZWxsIFNoYWxsb3cKVGhpcyBpcyBwcmVsaW1pbmFyeSBkYXRhIGFuZCB3aWxsIHVuZGVyZ28gbW9yZSByaWd1cm91cyBRQVFDIGF0IGEgbGF0ZXIgZGF0ZS4gCmBgYHtyLCBlY2hvPUZBTFNFfQojbG9nIG51bWJlcgpuPTYKCiNSZWFkIGRmCmRmPC1yZWFkLmNzdihwYXN0ZTAod29ya2luZ19kaXIsICJpbnRlcm1lZGlhdGUvIixtYXN0ZXIkU29uZGVfSURbbl0sIi5jc3YiKSkKZGYkVGltZXN0YW1wPC1hcy5QT1NJWGN0KGRmJFRpbWVzdGFtcCkKCiNFZGl0cwojZGY8LWRmWyEoZGYkVGltZXN0YW1wPmFzLlBPU0lYY3QoIjIwMTctMDktMjcgMDQ6MDAgVVRDIikgJiBkZiRUaW1lc3RhbXA8YXMuUE9TSVhjdCgiMjAxNy0wOS0yNyAxMTowMCBVVEMiKSksXQoKI2V4cG9ydCB1cGRhdGVkIGNzdgojd3JpdGUuY3N2KGRmLCBwYXN0ZTAod29ya2luZ19kaXIsICJpbnRlcm1lZGlhdGUvIixtYXN0ZXIkU29uZGVfSURbbl0sIi5jc3YiKSkKCiNDcmVhdGUgUGxvdApmdW4obikKYGBgCgojI1RpZ2VyIFBhdyBDYXRjaG1lbnQgT3V0bGV0ClRoaXMgaXMgcHJlbGltaW5hcnkgZGF0YSBhbmQgd2lsbCB1bmRlcmdvIG1vcmUgcmlndXJvdXMgUUFRQyBhdCBhIGxhdGVyIGRhdGUuIApgYGB7ciwgZWNobz1GQUxTRX0KI2xvZyBudW1iZXIKbj03CgojUmVhZCBkZgpkZjwtcmVhZC5jc3YocGFzdGUwKHdvcmtpbmdfZGlyLCAiaW50ZXJtZWRpYXRlLyIsbWFzdGVyJFNvbmRlX0lEW25dLCIuY3N2IikpCmRmJFRpbWVzdGFtcDwtYXMuUE9TSVhjdChkZiRUaW1lc3RhbXApCgojRWRpdHMKI2RmPC1kZlshKGRmJFRpbWVzdGFtcD5hcy5QT1NJWGN0KCIyMDE3LTA5LTI3IDA0OjAwIFVUQyIpICYgZGYkVGltZXN0YW1wPGFzLlBPU0lYY3QoIjIwMTctMDktMjcgMTE6MDAgVVRDIikpLF0KCiNleHBvcnQgdXBkYXRlZCBjc3YKI3dyaXRlLmNzdihkZiwgcGFzdGUwKHdvcmtpbmdfZGlyLCAiaW50ZXJtZWRpYXRlLyIsbWFzdGVyJFNvbmRlX0lEW25dLCIuY3N2IikpCgojQ3JlYXRlIFBsb3QKZnVuKG4pCmBgYAoKIyNGTiBXZXRsYW5kIFdlbGwgU2hhbGxvdwpUaGlzIGlzIHByZWxpbWluYXJ5IGRhdGEgYW5kIHdpbGwgdW5kZXJnbyBtb3JlIHJpZ3Vyb3VzIFFBUUMgYXQgYSBsYXRlciBkYXRlLiAKYGBge3IsIGVjaG89RkFMU0V9CiNsb2cgbnVtYmVyCm49OAoKI1JlYWQgZGYKZGY8LXJlYWQuY3N2KHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQpkZiRUaW1lc3RhbXA8LWFzLlBPU0lYY3QoZGYkVGltZXN0YW1wKQoKI0VkaXRzCiNkZjwtZGZbIShkZiRUaW1lc3RhbXA+YXMuUE9TSVhjdCgiMjAxNy0wOS0yNyAwNDowMCBVVEMiKSAmIGRmJFRpbWVzdGFtcDxhcy5QT1NJWGN0KCIyMDE3LTA5LTI3IDExOjAwIFVUQyIpKSxdCgojZXhwb3J0IHVwZGF0ZWQgY3N2CiN3cml0ZS5jc3YoZGYsIHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQoKI0NyZWF0ZSBQbG90CmZ1bihuKQpgYGAKCgojI0JCIFdldGxhbmQgV2VsbCBTaGFsbG93ClRoaXMgaXMgcHJlbGltaW5hcnkgZGF0YSBhbmQgd2lsbCB1bmRlcmdvIG1vcmUgcmlndXJvdXMgUUFRQyBhdCBhIGxhdGVyIGRhdGUuIApgYGB7ciwgZWNobz1GQUxTRX0KI2xvZyBudW1iZXIKbj05CgojUmVhZCBkZgpkZjwtcmVhZC5jc3YocGFzdGUwKHdvcmtpbmdfZGlyLCAiaW50ZXJtZWRpYXRlLyIsbWFzdGVyJFNvbmRlX0lEW25dLCIuY3N2IikpCmRmJFRpbWVzdGFtcDwtYXMuUE9TSVhjdChkZiRUaW1lc3RhbXApCgojRWRpdHMKI2RmPC1kZlshKGRmJFRpbWVzdGFtcD5hcy5QT1NJWGN0KCIyMDE3LTA5LTI3IDA0OjAwIFVUQyIpICYgZGYkVGltZXN0YW1wPGFzLlBPU0lYY3QoIjIwMTctMDktMjcgMTE6MDAgVVRDIikpLF0KCiNleHBvcnQgdXBkYXRlZCBjc3YKI3dyaXRlLmNzdihkZiwgcGFzdGUwKHdvcmtpbmdfZGlyLCAiaW50ZXJtZWRpYXRlLyIsbWFzdGVyJFNvbmRlX0lEW25dLCIuY3N2IikpCgojQ3JlYXRlIFBsb3QKZnVuKG4pCmBgYAoKIyNCQiBVcGxhbmQgV2VsbCAxClRoaXMgaXMgcHJlbGltaW5hcnkgZGF0YSBhbmQgd2lsbCB1bmRlcmdvIG1vcmUgcmlndXJvdXMgUUFRQyBhdCBhIGxhdGVyIGRhdGUuIApgYGB7ciwgZWNobz1GQUxTRX0KI2xvZyBudW1iZXIKbj0xMAoKI1JlYWQgZGYKZGY8LXJlYWQuY3N2KHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQpkZiRUaW1lc3RhbXA8LWFzLlBPU0lYY3QoZGYkVGltZXN0YW1wKQoKI0VkaXRzCiNkZjwtZGZbIShkZiRUaW1lc3RhbXA+YXMuUE9TSVhjdCgiMjAxNy0wOS0yNyAwNDowMCBVVEMiKSAmIGRmJFRpbWVzdGFtcDxhcy5QT1NJWGN0KCIyMDE3LTA5LTI3IDExOjAwIFVUQyIpKSxdCgojZXhwb3J0IHVwZGF0ZWQgY3N2CiN3cml0ZS5jc3YoZGYsIHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQoKI0NyZWF0ZSBQbG90CmZ1bihuKQpgYGAKCiMjUC0yNiBEZWVwIFdlbGwKVGhpcyBpcyBwcmVsaW1pbmFyeSBkYXRhIGFuZCB3aWxsIHVuZGVyZ28gbW9yZSByaWd1cm91cyBRQVFDIGF0IGEgbGF0ZXIgZGF0ZS4gCmBgYHtyLCBlY2hvPUZBTFNFfQojbG9nIG51bWJlcgpuPTExCgojUmVhZCBkZgpkZjwtcmVhZC5jc3YocGFzdGUwKHdvcmtpbmdfZGlyLCAiaW50ZXJtZWRpYXRlLyIsbWFzdGVyJFNvbmRlX0lEW25dLCIuY3N2IikpCmRmJFRpbWVzdGFtcDwtYXMuUE9TSVhjdChkZiRUaW1lc3RhbXApCgojRWRpdHMKI2RmPC1kZlshKGRmJFRpbWVzdGFtcD5hcy5QT1NJWGN0KCIyMDE3LTA5LTI3IDA0OjAwIFVUQyIpICYgZGYkVGltZXN0YW1wPGFzLlBPU0lYY3QoIjIwMTctMDktMjcgMTE6MDAgVVRDIikpLF0KCiNleHBvcnQgdXBkYXRlZCBjc3YKI3dyaXRlLmNzdihkZiwgcGFzdGUwKHdvcmtpbmdfZGlyLCAiaW50ZXJtZWRpYXRlLyIsbWFzdGVyJFNvbmRlX0lEW25dLCIuY3N2IikpCgojQ3JlYXRlIFBsb3QKZnVuKG4pCmBgYAoKCiMjTkQgVXBsYW5kIFdlbGwgMQpUaGlzIGlzIHByZWxpbWluYXJ5IGRhdGEgYW5kIHdpbGwgdW5kZXJnbyBtb3JlIHJpZ3Vyb3VzIFFBUUMgYXQgYSBsYXRlciBkYXRlLiAKYGBge3IsIGVjaG89RkFMU0V9CiNsb2cgbnVtYmVyCm49MTIKCiNSZWFkIGRmCmRmPC1yZWFkLmNzdihwYXN0ZTAod29ya2luZ19kaXIsICJpbnRlcm1lZGlhdGUvIixtYXN0ZXIkU29uZGVfSURbbl0sIi5jc3YiKSkKZGYkVGltZXN0YW1wPC1hcy5QT1NJWGN0KGRmJFRpbWVzdGFtcCkKCiNFZGl0cwojZGY8LWRmWyEoZGYkVGltZXN0YW1wPmFzLlBPU0lYY3QoIjIwMTctMDktMjcgMDQ6MDAgVVRDIikgJiBkZiRUaW1lc3RhbXA8YXMuUE9TSVhjdCgiMjAxNy0wOS0yNyAxMTowMCBVVEMiKSksXQoKI2V4cG9ydCB1cGRhdGVkIGNzdgojd3JpdGUuY3N2KGRmLCBwYXN0ZTAod29ya2luZ19kaXIsICJpbnRlcm1lZGlhdGUvIixtYXN0ZXIkU29uZGVfSURbbl0sIi5jc3YiKSkKCiNDcmVhdGUgUGxvdApmdW4obikKYGBgCgojI05EIFVwbGFuZCBXZWxsIDIKVGhpcyBpcyBwcmVsaW1pbmFyeSBkYXRhIGFuZCB3aWxsIHVuZGVyZ28gbW9yZSByaWd1cm91cyBRQVFDIGF0IGEgbGF0ZXIgZGF0ZS4gCmBgYHtyLCBlY2hvPUZBTFNFfQojbG9nIG51bWJlcgpuPTEzCgojUmVhZCBkZgpkZjwtcmVhZC5jc3YocGFzdGUwKHdvcmtpbmdfZGlyLCAiaW50ZXJtZWRpYXRlLyIsbWFzdGVyJFNvbmRlX0lEW25dLCIuY3N2IikpCmRmJFRpbWVzdGFtcDwtYXMuUE9TSVhjdChkZiRUaW1lc3RhbXApCgojRWRpdHMKI2RmPC1kZlshKGRmJFRpbWVzdGFtcD5hcy5QT1NJWGN0KCIyMDE3LTA5LTI3IDA0OjAwIFVUQyIpICYgZGYkVGltZXN0YW1wPGFzLlBPU0lYY3QoIjIwMTctMDktMjcgMTE6MDAgVVRDIikpLF0KCiNleHBvcnQgdXBkYXRlZCBjc3YKI3dyaXRlLmNzdihkZiwgcGFzdGUwKHdvcmtpbmdfZGlyLCAiaW50ZXJtZWRpYXRlLyIsbWFzdGVyJFNvbmRlX0lEW25dLCIuY3N2IikpCgojQ3JlYXRlIFBsb3QKZnVuKG4pCmBgYAoKIyNORCBXZXRsYW5kIFdlbGwgU2hhbGxvdwpUaGlzIGlzIHByZWxpbWluYXJ5IGRhdGEgYW5kIHdpbGwgdW5kZXJnbyBtb3JlIHJpZ3Vyb3VzIFFBUUMgYXQgYSBsYXRlciBkYXRlLiAKYGBge3IsIGVjaG89RkFMU0V9CiNsb2cgbnVtYmVyCm49MTQKCiNSZWFkIGRmCmRmPC1yZWFkLmNzdihwYXN0ZTAod29ya2luZ19kaXIsICJpbnRlcm1lZGlhdGUvIixtYXN0ZXIkU29uZGVfSURbbl0sIi5jc3YiKSkKZGYkVGltZXN0YW1wPC1hcy5QT1NJWGN0KGRmJFRpbWVzdGFtcCkKCiNFZGl0cwojZGY8LWRmWyEoZGYkVGltZXN0YW1wPmFzLlBPU0lYY3QoIjIwMTctMDktMjcgMDQ6MDAgVVRDIikgJiBkZiRUaW1lc3RhbXA8YXMuUE9TSVhjdCgiMjAxNy0wOS0yNyAxMTowMCBVVEMiKSksXQoKI2V4cG9ydCB1cGRhdGVkIGNzdgojd3JpdGUuY3N2KGRmLCBwYXN0ZTAod29ya2luZ19kaXIsICJpbnRlcm1lZGlhdGUvIixtYXN0ZXIkU29uZGVfSURbbl0sIi5jc3YiKSkKCiNDcmVhdGUgUGxvdApmdW4obikKYGBgCgojREsgVXBsYW5kIFdlbGwgMQpUaGlzIGlzIHByZWxpbWluYXJ5IGRhdGEgYW5kIHdpbGwgdW5kZXJnbyBtb3JlIHJpZ3Vyb3VzIFFBUUMgYXQgYSBsYXRlciBkYXRlLiAKYGBge3IsIGVjaG89RkFMU0V9CiNsb2cgbnVtYmVyCm49MTUKCiNSZWFkIGRmCmRmPC1yZWFkLmNzdihwYXN0ZTAod29ya2luZ19kaXIsICJpbnRlcm1lZGlhdGUvIixtYXN0ZXIkU29uZGVfSURbbl0sIi5jc3YiKSkKZGYkVGltZXN0YW1wPC1hcy5QT1NJWGN0KGRmJFRpbWVzdGFtcCkKCiNFZGl0cwojZGY8LWRmWyEoZGYkVGltZXN0YW1wPmFzLlBPU0lYY3QoIjIwMTctMDktMjcgMDQ6MDAgVVRDIikgJiBkZiRUaW1lc3RhbXA8YXMuUE9TSVhjdCgiMjAxNy0wOS0yNyAxMTowMCBVVEMiKSksXQoKI2V4cG9ydCB1cGRhdGVkIGNzdgojd3JpdGUuY3N2KGRmLCBwYXN0ZTAod29ya2luZ19kaXIsICJpbnRlcm1lZGlhdGUvIixtYXN0ZXIkU29uZGVfSURbbl0sIi5jc3YiKSkKCiNDcmVhdGUgUGxvdApmdW4obikKYGBgCgojREsgVXBsYW5kIFdlbGwgMgpUaGlzIGlzIHByZWxpbWluYXJ5IGRhdGEgYW5kIHdpbGwgdW5kZXJnbyBtb3JlIHJpZ3Vyb3VzIFFBUUMgYXQgYSBsYXRlciBkYXRlLiAKYGBge3IsIGVjaG89RkFMU0V9CiNsb2cgbnVtYmVyCm49MTYKCiNSZWFkIGRmCmRmPC1yZWFkLmNzdihwYXN0ZTAod29ya2luZ19kaXIsICJpbnRlcm1lZGlhdGUvIixtYXN0ZXIkU29uZGVfSURbbl0sIi5jc3YiKSkKZGYkVGltZXN0YW1wPC1hcy5QT1NJWGN0KGRmJFRpbWVzdGFtcCkKCiNFZGl0cwojZGY8LWRmWyEoZGYkVGltZXN0YW1wPmFzLlBPU0lYY3QoIjIwMTctMDktMjcgMDQ6MDAgVVRDIikgJiBkZiRUaW1lc3RhbXA8YXMuUE9TSVhjdCgiMjAxNy0wOS0yNyAxMTowMCBVVEMiKSksXQoKI2V4cG9ydCB1cGRhdGVkIGNzdgojd3JpdGUuY3N2KGRmLCBwYXN0ZTAod29ya2luZ19kaXIsICJpbnRlcm1lZGlhdGUvIixtYXN0ZXIkU29uZGVfSURbbl0sIi5jc3YiKSkKCiNDcmVhdGUgUGxvdApmdW4obikKYGBgCgojREsgV2V0bGFuZCBXZWxsIFNoYWxsb3cKVGhpcyBpcyBwcmVsaW1pbmFyeSBkYXRhIGFuZCB3aWxsIHVuZGVyZ28gbW9yZSByaWd1cm91cyBRQVFDIGF0IGEgbGF0ZXIgZGF0ZS4gCmBgYHtyLCBlY2hvPUZBTFNFfQojbG9nIG51bWJlcgpuPTE3CgojUmVhZCBkZgpkZjwtcmVhZC5jc3YocGFzdGUwKHdvcmtpbmdfZGlyLCAiaW50ZXJtZWRpYXRlLyIsbWFzdGVyJFNvbmRlX0lEW25dLCIuY3N2IikpCmRmJFRpbWVzdGFtcDwtYXMuUE9TSVhjdChkZiRUaW1lc3RhbXApCgojRWRpdHMKI2RmPC1kZlshKGRmJFRpbWVzdGFtcD5hcy5QT1NJWGN0KCIyMDE3LTA5LTI3IDA0OjAwIFVUQyIpICYgZGYkVGltZXN0YW1wPGFzLlBPU0lYY3QoIjIwMTctMDktMjcgMTE6MDAgVVRDIikpLF0KCiNleHBvcnQgdXBkYXRlZCBjc3YKI3dyaXRlLmNzdihkZiwgcGFzdGUwKHdvcmtpbmdfZGlyLCAiaW50ZXJtZWRpYXRlLyIsbWFzdGVyJFNvbmRlX0lEW25dLCIuY3N2IikpCgojQ3JlYXRlIFBsb3QKZnVuKG4pCmBgYAoKI0RhdGFiYXNlIEltcG9ydApgYGB7ciBkYXRhYmFzZSBpbXBvcnQsIGVjaG89RkFMU0V9CiNDcmVhdGUgZnVuY3Rpb24KZnVuPC1mdW5jdGlvbihuKXsKICAjRG93bmxvYWQgaW50ZXJtZWRpYXRlIHRzIGRhdGEKICBkZjwtcmVhZC5jc3YocGFzdGUwKHdvcmtpbmdfZGlyLCJpbnRlcm1lZGlhdGUvIiwgbG9nc1tuXSkpCiAgZGY8LWRmWyxjKCJUaW1lc3RhbXAiLCJ3YXRlckxldmVsIildCiAgZGYkVGltZXN0YW1wPC1hcy5QT1NJWGN0KGRmJFRpbWVzdGFtcCkKCiAgI1NvbmRlIElECiAgc248LWFzLm51bWVyaWMoc3Vic3RyKGxvZ3Nbbl0sIDEsbmNoYXIobG9nc1tuXSktNCkpCiAgCiAgI0NyZWF0ZSB2YXJpYWJsZSBsaXN0CiAgdmFyc19saXN0PC1saXN0KCMicHJlc3N1cmVBYnNvbHV0ZSIgICAgPSBsaXN0KGNvbHVtbiA9ICJwcmVzc3VyZUFic29sdXRlIiwgICB1bml0cyA9ICJLUGEiKSwKICAgICAgICAgICAgICAgICAgIyJiYXJvbWV0cmljUHJlc3N1cmUiICA9IGxpc3QoY29sdW1uID0gImJhcm9tZXRyaWNQcmVzc3VyZSIsIHVuaXRzID0gIktQYSIpLAogICAgICAgICAgICAgICAgICAjInByZXNzdXJlR2F1Z2UiICAgICAgID0gbGlzdChjb2x1bW4gPSAicHJlc3N1cmVHYXVnZSIsICAgICAgdW5pdHMgPSAiS1BhIiksCiAgICAgICAgICAgICAgICAgICMiZ2FnZUhlaWdodCIgICAgICAgICAgPSBsaXN0KGNvbHVtbiA9ICJnYWdlSGVpZ2h0IiwgICAgICAgICB1bml0cyA9ICJNZXRlciIpLAogICAgICAgICAgICAgICAgICAiV2F0ZXIgbGV2ZWwiICAgICAgICAgID0gbGlzdChjb2x1bW4gPSAid2F0ZXJMZXZlbCIsICAgICAgICAgdW5pdHMgPSAiTWV0ZXIiKSkjLAogICAgICAgICAgICAgICAgICAjIm9mZnNldCIgICAgICAgICAgICAgID0gbGlzdChjb2x1bW4gPSAib2Zmc2V0IiwgICAgICAgICAgICAgdW5pdHMgPSAiTWV0ZXIiKSkKCiAgI0luc2VydCBkYXRhIGludG8gZGF0YWJhc2UKICB0MDwtU3lzLnRpbWUoKQogIGRiX2luc2VydF9yZXN1bHRzX3RzKGRiID0gZGIsICMgZGF0YWJhc2UgY29ubmVjdG9uCiAgICAgICAgICAgICAgICAgICAgICAgZGF0YXZhbHVlcyA9IGRmLCAjIGRhdGEgZnJhbWUgb2YgdGltZSBzZXJpZXMgZGF0YQogICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA9ICJQVF9Eb3dubG9hZCIsCiAgICAgICAgICAgICAgICAgICAgICAgc2l0ZV9jb2RlID0gYXMuY2hhcmFjdGVyKG1hc3RlciRTaXRlX05hbWVbbWFzdGVyJFNvbmRlX0lEPT1zbl0pLAogICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlcyA9IHZhcnNfbGlzdCwKICAgICAgICAgICAgICAgICAgICAgICBzYW1wbGVkbWVkaXVtID0gIkxpcXVpZCBhcXVlb3VzIiwKICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25ieSA9ICJOYXRlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgZXF1aXBtZW50X25hbWUgPSBhcy5jaGFyYWN0ZXIobWFzdGVyJFNvbmRlX0lEW21hc3RlciRTb25kZV9JRD09c25dKSkKICB0ZjwtU3lzLnRpbWUoKQogIHRmLXQwCn0KCiNDcmVhdGUgbGlzdCBvZiBpbnRlcm1lZGlhdGUgZmlsZXMKbG9nczwtbGlzdC5maWxlcyhwYXN0ZTAod29ya2luZ19kaXIsImludGVybWVkaWF0ZSIpKQpsb2dzPC1sb2dzW2xvZ3MhPXBhc3RlMChtYXN0ZXIkU29uZGVfSURbbWFzdGVyJFNpdGVfTmFtZT09IkdyZWcgQ2F0Y2htZW50IE91dGxldCJdLCIuY3N2IildCmxvZ3M8LWxvZ3NbbG9ncyE9cGFzdGUwKG1hc3RlciRTb25kZV9JRFttYXN0ZXIkU2l0ZV9OYW1lPT0iRG9nYm9uZSBDYXRjaG1lbnQgT3V0bGV0Il0sIi5jc3YiKV0KCgojUnVuIGZ1bmN0aW9uCnQwPC1TeXMudGltZSgpCmZvcihpIGluIDE6bGVuZ3RoKGxvZ3MpKXsKICBwcmludChpKQogIGZ1bihpKQp9CnRmPC1TeXMudGltZSgpCnRmLXQwCgojRGlzY29ubmVjdCBmcm9tIERCCmRiRGlzY29ubmVjdChkYikKYGBgCg==